#if defined(_MSC_VER)
#pragma once
#endif

#ifndef FFT_H
#define FFT_H

#include "core\lm.h"

// don't use complex or COMPLEX in case conflict with MS implementation
struct MYCOMPLEX {
	MYCOMPLEX() {
		real = imag = 0;
	}
	MYCOMPLEX(double i, double j) {
		real = i;
		imag = j;
	}
	MYCOMPLEX(double i) {
		real = i;
		imag = 0;
	}
	double real;	// real component
	double imag;	// imaginary component
};

bool FFT2D(MYCOMPLEX *c,int nx,int ny,int dir);
bool FFT(int dir,int m,double *x,double *y);

#endif

